package j2024.j202412;

public class j1211 {
    /**
     * 53. 最大子数组和
     * 给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
     *
     * 子数组
     * 是数组中的一个连续部分。
     * @param nums
     * @return
     */
    public int maxSubArray(int[] nums) {
        int ret = Integer.MIN_VALUE;
        int n = nums.length;
        int[] dp = new int[n+1];
        for (int i = 1; i <= n; i++) {
            dp[i] = Math.max(nums[i-1],dp[i-1]+nums[i-1]);
            ret = Math.max(ret,dp[i]);
        }
        return dp[n];
    }
}
